/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package treeship.core.service;

import java.util.List;

import treeship.core.archetype.ArchetypeFamily;
import treeship.core.archetype.ArchetypeProperty;
import treeship.core.archetype.ArchetypeShip;

/**
 * 
 * @author Moonchild
 */
public abstract class ArchetypesRepository {

	public abstract ArchetypeShip getArchetypeShipFor(String s);

	public abstract ArchetypeProperty getArchetypePropertyFor(String s);

	public abstract ArchetypeFamily getArchetypeFamilyFor(String s);

	public abstract <T extends ArchetypeShip> List<T> getArchetypeShips();

	public abstract <T extends ArchetypeProperty> List<T> getArchetypeProperties();

	public abstract <T extends ArchetypeFamily> List<T> getArchetypeFamilies();

	public abstract ContextData getContextData();
}
